/**
 *@author Victor Roncalla
**/

package pe.com.chilis.delivery.dao.implementacion;

import java.util.ArrayList;
import com.ibatis.dao.client.DaoManager;

import pe.com.chilis.delivery.dao.interfaz.ZonaRepartoDAO;
import pe.com.chilis.delivery.beans.Departamento;
import pe.com.chilis.delivery.beans.Distrito;
import pe.com.chilis.delivery.beans.Provincia;
import pe.com.chilis.delivery.beans.ZonaReparto;
import pe.com.chilis.delivery.excepcion.ExcepcionDatos;
import pe.com.chilis.delivery.util.UtilDaoConfig;

public class ImplDespachadorZonaReparto implements ZonaRepartoDAO{

	DaoManager fabrica = UtilDaoConfig.obtenerDaoManager();
	ZonaRepartoDAO despachadorZonaReparto = (ZonaRepartoDAO) fabrica.getDao(ZonaRepartoDAO.class);

	@Override
	public int registrarZonaReparto(ZonaReparto zonaReparto)
			throws ExcepcionDatos {
		return despachadorZonaReparto.registrarZonaReparto(zonaReparto);
	}

	@Override
	public void actualizarZonaReparto(ZonaReparto zonaReparto)
			throws ExcepcionDatos {
		despachadorZonaReparto.actualizarZonaReparto(zonaReparto);
	}

	@Override
	public void eliminarZonaReparto(ZonaReparto zonaReparto)
			throws ExcepcionDatos {
		despachadorZonaReparto.eliminarZonaReparto(zonaReparto);
	}

	@Override
	public ArrayList<ZonaReparto> obtenerZonasReparto(ZonaReparto zonaReparto) throws ExcepcionDatos {
		return despachadorZonaReparto.obtenerZonasReparto(zonaReparto);
	}

	@Override
	public ZonaReparto obtenerZonaRepartoPorId(int idZonaReparto) throws ExcepcionDatos {
		return despachadorZonaReparto.obtenerZonaRepartoPorId(idZonaReparto);
	}

	@Override
	public void actualizarDistritoZonaReparto(Distrito distrito) throws ExcepcionDatos {
		despachadorZonaReparto.actualizarDistritoZonaReparto(distrito);
	}

	@Override
	public ArrayList<Departamento> listarDepartamentos() throws ExcepcionDatos {
		return despachadorZonaReparto.listarDepartamentos();
	}

	@Override
	public ArrayList<Provincia> listarProvinciasPorDepartamento(Departamento departamento) throws ExcepcionDatos {
		return despachadorZonaReparto.listarProvinciasPorDepartamento(departamento);
	}

	@Override
	public ArrayList<Distrito> listarDistritosSinAsociarPorProvincia(Provincia provincia) throws ExcepcionDatos {
		return despachadorZonaReparto.listarDistritosSinAsociarPorProvincia(provincia);
	}

	@Override
	public ArrayList<Distrito> listarDistritosAsociadosPorProvincia(Distrito distrito) throws ExcepcionDatos {
		return despachadorZonaReparto.listarDistritosAsociadosPorProvincia(distrito);
	}

	@Override
	public ArrayList<Distrito> listarDistritosAsociadosPorZonaReparto(ZonaReparto zonaReparto) throws ExcepcionDatos {
		return despachadorZonaReparto.listarDistritosAsociadosPorZonaReparto(zonaReparto);
	}
}